using System.Collections.Generic;
using UnityEngine;

namespace Core.Runtime
{
    [CreateAssetMenu(fileName = "GameSettingSo", menuName = "Settings/GameSettingSo")]
    public class GameSettingSo : ScriptableSingleton<GameSettingSo>
    {
        [Header("热更DLL")] public List<string> HotUpdateAssemblies = new() { "HotFix.System.dll","Hotfix.Logic.dll" };
        [Header("补充元数据DLL")] public List<string> AotMetaAssemblies = new() { "mscorlib.dll", "System.dll", "System.Core.dll" };
        [Header("主逻辑DLL名称（带后缀）")] public string LogicMainDll = "HotFix.System.dll";
        [Header("程序集导入文件后缀")] public string AssemblyAssetExtension = ".bytes";
        [Header("程序集导入文件路径")] public string AssemblyAssetPath = "AssetPacks/Codes";

        [Header("运行模式")] public RuntimeMode RuntimeMode = RuntimeMode.PackageOnly;
        [Header("编辑器资源模式")] public bool IsEditorMode = true;
        [Header("资源包卸载延迟")] public float UnloadBundleDelay = 120f;
        [Header("资源卸载延迟")] public float UnloadAssetDelay = 60f;
        [Header("最大任务数")] public int MaxConcurrentTasks = 30;

        [Header("UI模版")]public TextAsset UIBaseTemplate;
        [Header("事件模版")]public TextAsset EventBaseTemplate;


        protected override string AssetPath => "Assets/Resources/RuntimeSo/GameSettingSo.asset";
        protected override string ResourcePath => "RuntimeSo/GameSettingSo";
    }
}